#include "MyShellWord.h"

// 关键字
std::unordered_set<std::string> mysh::keywords = {
    "function",
    "declare",
    "for",
    "in",
    "to", 
    "BzzD",
    "if",
    "elif",
    "else",
    "call",
    "return",
    "run",
    "input", 
    "output", 
    "int",
    "string",
    "array",
    "bool",
    "void", 
    "true",
    "false"
};

// mysh中可能使用的单字符
std::unordered_set<char> mysh::single_characters = {
    ';',
    '(',
    ')',
    '[',
    ']',
    '{',
    '}',
    '=',
    // '+',
    // '-',
    // '*',
    '/',
    '>',
    '<', 
    ',', 
    ':'
};

// 构造函数
mysh::Word::Word(const std::string& name, enum mysh::WORD_TYPE word_type):
    name(name),
    word_type(word_type)
{
}

// 判断是否为空单词
bool mysh::Word::ifEmpty()
{
    return this->name.empty();
}